package document

import (
	"time"
)

// DocumentTemplate 公文模板定义
type DocumentTemplate struct {
	ID          int         `json:"id"`
	Name        string      `json:"name"`
	Structure   string      `json:"structure"`
	FormatRules FormatRules `json:"format_rules"`
	Description string      `json:"description"`
	CreatedAt   time.Time   `json:"created_at"`
	UpdatedAt   time.Time   `json:"updated_at"`
}

// FormatRules 格式规则定义
type FormatRules struct {
	Title       TextFormat `json:"title"`
	Body        TextFormat `json:"body"`
	Level1Title TextFormat `json:"level1_title"`
	Level2Title TextFormat `json:"level2_title"`
	Signature   TextFormat `json:"signature"`
	Date        TextFormat `json:"date"`
}

// TextFormat 文本格式定义
type TextFormat struct {
	Font        string `json:"font"`
	Size        string `json:"size"`
	Align       string `json:"align,omitempty"`
	Indent      string `json:"indent,omitempty"`
	LineSpacing string `json:"line_spacing,omitempty"`
	Weight      string `json:"weight,omitempty"`
}

// FileInfo 文件信息表
type FileInfo struct {
	ID              int       `json:"id" xorm:"pk autoincr notnull"`
	FileName        string    `json:"file_name" xorm:"varchar(255) notnull" form:"file_name"`
	FileDescription string    `json:"file_description" xorm:"text" form:"file_description"`
	Remark          string    `json:"remark" xorm:"text" form:"remark"`
	FileAuthor      string    `json:"file_author" xorm:"varchar(100)" form:"file_author"`
	S3Links         []string  `json:"s3_links" xorm:"json" form:"s3_links"` // S3文件链接数组
	CreatedAt       time.Time `json:"created_at" xorm:"created" form:"created_at"`
	UpdatedAt       time.Time `json:"updated_at" xorm:"updated" form:"updated_at"`
}

// DocumentType 公文类型常量
const (
	DocumentTypeNotice   = 1 // 通知
	DocumentTypeCircular = 2 // 通报
	DocumentTypeLetter   = 3 // 函
	DocumentTypeReport   = 4 // 报告
	DocumentTypeRequest  = 5 // 请示
	DocumentTypeMinutes  = 6 // 纪要
	DocumentTypeDecision = 7 // 决定
	DocumentTypeOpinion  = 8 // 意见
)
